package wiki.daos;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

import wiki.banco.Conexao;
import wiki.beans.Pais;

public class PaisDAO 
{
	Conexao conexao;
	
	
	public PaisDAO()
	{
		conexao = new Conexao();
	}
	
	
	protected void finalize()
	{
		conexao.fechar();
	}
	
	
	public ArrayList<Pais> buscarTodos()
	{
	    ArrayList<Pais> arrayRegistros = new ArrayList<Pais>();
	    
	    String query = "SELECT idPais, Nome FROM pais ORDER BY idPais";
	    conexao.preparar(query);
	    
	    try
	    {
	      ResultSet rs = conexao.executeQuery();
	      
	      while (rs.next())
	      {
	    	  arrayRegistros.add(new Pais(rs.getInt("idPais"), rs.getString("Nome")));
	      }
	      
	      rs.close();
	      
	    } 
	    catch (SQLException ex)
	    {
	      Logger.getLogger(PaisDAO.class.getName()).log(Level.SEVERE, null, ex);
	    }
	    
	    return arrayRegistros;
	}
	
	
	@SuppressWarnings("finally")
	public Pais buscarPorID(int id)
	{
	    Pais Pais = null;
	    String query = "SELECT idPais, Nome FROM pais WHERE idPais=?";

	    conexao.preparar(query);
	    try
	    {
	      conexao.getPstmt().setInt(1, id);
	      ResultSet rs = conexao.executeQuery();
	      
	      while (rs.next())
	      {
	    	  Pais = new Pais(id, rs.getString("Nome"));
	      }
	      rs.close();
	      
	    } 
	    catch (SQLException ex)
	    {
	      Logger.getLogger(PaisDAO.class.getName()).log(Level.SEVERE, null, ex);
	    }
	    finally
	    {
	      return Pais;
	    }
	}
	
	
	@SuppressWarnings("finally")
	public Pais buscarPorNome(String nome)
	{
	    Pais Pais = null;
	    String query = "SELECT id, Nome FROM pais WHERE Nome=?";

	    conexao.preparar(query);
	    try
	    {
	      conexao.getPstmt().setString(1, nome);
	      ResultSet rs = conexao.executeQuery();
	      
	      while (rs.next())
	      {
	    	  Pais = new Pais(rs.getInt("id"), rs.getString("Nome"));
	      }
	      rs.close();
	      
	    } 
	    catch (SQLException ex)
	    {
	      Logger.getLogger(PaisDAO.class.getName()).log(Level.SEVERE, null, ex);
	    }
	    finally
	    {
	      return Pais;
	    }
	}

}
